package com.docmanage.am.domain;

import java.util.Date;
import java.util.List;

import com.docmanage.am.domain.dto.FileDTO;
import com.docmanage.am.domain.vo.FileVO;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.docmanage.common.annotation.Excel;
import com.docmanage.common.core.domain.BaseEntity;

/**
 * 档案著录对象 am_description
 * 
 * @author docmanage
 * @date 2023-11-28
 */
@Data
public class AmDescription extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 案卷号 */
    @Excel(name = "案卷号")
    private String fileCode;

    /** 档案类别 */
    @Excel(name = "档案类别")
    private Long folderId;

    /** 档案类别 */
    @Excel(name = "档案类别")
    private String folderName;

    /** 归档时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "归档时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date archiveTime;

    /** 档案级别 */
    @Excel(name = "档案级别")
    private Long groupId;

    @Excel(name = "档案级别")
    private String groupName;

    /** 提名 */
    @Excel(name = "提名")
    private String title;

    /** 主题词 */
    @Excel(name = "主题词")
    private String keyword;

    /** 备注 */
    @Excel(name = "备注")
    private String notes;

    /** 档案柜 */
    @Excel(name = "档案柜")
    private Long cabinetId;

    /** 全宗 */
    @Excel(name = "全宗")
    private String fondCode;

    /** 保存期限 */
    @Excel(name = "保存期限")
    private String saveDate;

    /** 保存期限 */
    @Excel(name = "保存期限")
    private String saveDateName;

    /** 发文字号 */
    @Excel(name = "发文字号")
    private String dispatchNumber;

    /** 立卷时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "立卷时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date filingTime;

    /** 立卷人 */
    @Excel(name = "立卷人")
    private String filingPerson;

    /** 案卷立案开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "案卷立案开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 案卷立案结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "案卷立案结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 扩展索引（索引关键字段） */
    @Excel(name = "扩展索引", readConverterExp = "索=引关键字段")
    private String extendedIndex;

    /** 借阅状态。0：正常。1：被借走。 */
    private String brStatus;

    /** 借阅状态。0：正常。1：被借走。 */
    @Excel(name = "借阅状态说明")
    private String brStatusName;

    /** 历史时期 */
    @Excel(name = "历史时期")
    private String historicalPeriod;

    /** 数量 */
    @Excel(name = "数量")
    private Long number;

    /** 单位 */
    @Excel(name = "单位")
    private String unit;

    /** 页数 */
    @Excel(name = "页数")
    private Long paginalNum;

    /** 载体类型 */
    @Excel(name = "载体类型")
    private String carrierType;

    /** 规格 */
    @Excel(name = "规格")
    private String spec;

    /** 文种 */
    @Excel(name = "文种")
    private String recordType;

    /** 档案编号 */
    @Excel(name = "档案编号")
    private String descriptionNo;

    /** 归档类型（“已归档卷宗”（当前模式）；“待归档卷宗”（接口数据对接）） */
    @Excel(name = "归档类型", readConverterExp = "“=已归档卷宗”（当前模式")
    private String archivedType;

    /** 著录状态（“已著录”和“未著录”） */
    @Excel(name = "著录状态", readConverterExp = "“=已著录”和“未著录”")
    private String status;

    /** 申请人 */
    @Excel(name = "申请人")
    private Long userId;

    /** 申请人部门 */
    @Excel(name = "申请人部门")
    private Long depId;

    /** 是否删除 0正常 1删除 */
    @Excel(name = "是否删除 0正常 1删除")
    private Integer isDel;

    private List<FileVO> fileVOS;
}
